import java.awt.ScrollPane;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.filechooser.FileFilter;


public class Main {
	public static void main(String[] args) {
		
		final JFrame p = new JFrame();
		final JTextArea t = new JTextArea();
		p.add(new JScrollPane(t));
		p.setSize(400, 200);
		p.setResizable(false);
		t.setEditable(false);
		p.setVisible(true);
		p.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		new Thread(){
			public void run() {
				JFileChooser fc = new JFileChooser(new File(""));
				fc.setToolTipText("İşlenecek klasörü seçin");
				fc.setFileFilter(new FileFilter() {
					@Override
					public String getDescription() {
						return "";
					}
					@Override
					public boolean accept(File f) {
						return f.isDirectory();
					}
				});
				fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
				int res = fc.showOpenDialog(p);
				if (res != JFileChooser.APPROVE_OPTION ){
					JOptionPane.showMessageDialog(p, "İşlenecek dizin seçmelisiniz. Programı bir daha çalıştırın.");
					System.exit(0);
					return;
				}
				
				String sonkurtarilanlar = "";
				File f = fc.getSelectedFile();
				String path = ""+f.getAbsolutePath();
				File files[] = f.listFiles();
				int toplam = 0;
				for (int i = 0; i < files.length; i++) {
					File ff = files[i];
					if (ff.getName().toLowerCase().endsWith(".jpg")) {
						JpegRecovery r = new JpegRecovery(ff);
						if (r.recover()){
							System.out.println(files[i]+" recovered");
							sonkurtarilanlar += ff.getName()+"\n";
							toplam++;
						}
					}
					int yuzde = (i * 100) / files.length;
					t.setText("İşlem %"+yuzde+" tamamlandi.\n"+sonkurtarilanlar);
				}
				t.setText("İşlem tamamlandi. "+toplam+" dosya kurtarildi.\nİşlenen dizin:"+path+"\n"+sonkurtarilanlar);
			};
		}.run();
		
	}
}
